package usmp.edu.dis.model.repository;
import usmp.edu.dis.model.Paciente;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;



public class PacienteRepository implements Entity<Paciente> {
	
	/**
	 * 
	 * PacienteRepository
	 * 
	 * @author rigel-2014-0-programador Ronald Andrade
	 * @version 1.0
	 *
	 */
	
	private EntityManager em;       
    
    public PacienteRepository(EntityManager em) {
            this.em = em;
    }

    @Override
    public Paciente insert(Paciente t) {
            // TODO Auto-generated method stub
            em.persist(t);
            return t;
    }

    @Override
    public void update(Paciente t) {
            // TODO Auto-generated method stub
            em.merge(t);
    }

    @Override
    public void delete(Paciente t) {
            // TODO Auto-generated method stub
            Paciente paciente=em.find(Paciente.class, t.getDni());
            em.remove(paciente);
    }

    @Override
    public Paciente findById(String dni) {
            // TODO Auto-generated method stub
             return em.find(Paciente.class, dni);
    }

    @Override
    public Paciente findById(Paciente t) {
            // TODO Auto-generated method stub
            return null;
    }

    @Override
    public List<Paciente> listAll() {
            // TODO Auto-generated method stub
            return null;
    }


    @Override
    public List<Paciente> listByCustomCriteria(Object... objects) {
            // TODO Auto-generated method stub
            return null;
    }

    @Override
    public Paciente findById(int id) {
            // TODO Auto-generated method stub
            return em.find(Paciente.class, id);
    }

    //@SuppressWarnings("unchecked")
    @Override
    public List<Paciente> listDesp() {
            // TODO Auto-generated method stub
            Query query=em.createQuery("Select o From Paciente o");
            List<Paciente> busqueda=query.getResultList();
            return busqueda;
    }
    
    
        public List<Paciente> findByDNI(String dni) {
		System.out.println("+++++++++++++++++++++++ Buscar Nombre +++++++++++++++++++++++++++");
		Query query=em.createQuery("Select o From Paciente p where p.id ='"+ dni +"'");
		List<Paciente> lista=query.getResultList();
		return lista;
	}
	
}
